package proj;

/**
 * Used to store information about the state of the current gameboard
 * as well as validate moves and generating lists of possible moves.
 * @author Jono
 *
 */
public interface Board {
	/**
	 * Returns a coordinate object containing the location of the player
	 * identified by the colour parameter
	 * @param playerColour Colour of the player whose location is required
	 * @return Coordinate containing the player location.
	 */
	public Coordinate getPlayerLocation(String playerColour);
	/**
	 * Returns an array containing all valid moves from the current state
	 * of the board
	 * @return Move[] valid moves
	 */
	public Move[] getMoves();
	/**
	 * Returns true if the move given as a parameter is valid for the current
	 * state of the board and false otherwise.
	 * @return boolean Move is valid
	 */
	public boolean validateMove();
}
